跳到主要内容

签名说明

由于 XT 需要为第三方平台提供一些开放接口,因此需要考虑接口的数据安全问题,例如数据是否被篡改、数据是否过期、数据是否可重复提交,以及一定时间内接口的访问频率等。其中,数据是否被篡改最为重要。

  1. 线下分发 appkey 和 secretkey。针对不同的调用方,提供不同的 appkey 和 secretkey。

  2. 添加时间戳,该值应为发送请求时的 unix 时间戳(毫秒),根据此值计算数据的有效时间。

  3. 为所有数据添加签名信息

  4. 添加 recvwindow,有效时间相对简单且固定为某个值。例如,在相同的 api 和 appid 下,数据在 10 分钟内有效。可以进一步优化,使每个 API 的有效时间不同。

    服务器在收到请求时会判断时间戳。最多 60 秒,默认 5 秒。如果请求是在 5000 毫秒之前发送的,该请求将被视为无效。可以通过发送可选参数 recvWindow 来自定义此时间窗口值。

    此外,如果服务器计算出客户端时间戳比服务器时间_提前_超过一秒,服务器将拒绝该请求。由于互联网条件并非 100% 可靠,您的应用程序到 XT 服务器的本地延迟可能会出现抖动。这就是设置 recvWindow 的目的。

    不建议使用超过 5 秒的 recvWindow。

  5. 添加 algorithms(签名方法/算法)。用户的签名计算基于 HSC 协议,默认为 HmacSHA256。支持的算法:

    • HmacMD5
    • HmacSHA1
    • HmacSHA224
    • HmacSHA256(默认)
    • HmacSHA384
    • HmacSHA512

示例

名称必填示例描述
validate-appkeydbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83
validate-timestamp1641446237201
validate-signature0a7d0b5e802eb5e52ac0cfcd6311b0faba6e2503a9a8d1e2364b38617877574d
validate-recvwindow5000(毫秒)
validate-algorithmsHmacSHA256HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512,默认为 HmacSHA256
api-version1.0保留字段,API 版本号
validate-signversion1.0保留字段,签名版本号